// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.tmp.advertiser.invoices.campaign;

import com.fowo.api.common.annotaion.DataObjectType;
import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import com.fowo.api.entity.TmpAdvertiserInvoicesCampaign;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@DataObjectType(TmpAdvertiserInvoicesCampaign.class)
@Setter
@Getter
public class TmpAdvertiserInvoicesCampaignSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "TmpAdvertiserInvoicesCampaign".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();

    return map;
  }

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 最小创建人
   */
  private Long createUserMin;

  /**
   * 最大创建人
   */
  private Long createUserMax;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * 广告发票ID(模糊搜索)
   */
  private String invoiceId;

  /**
   * 广告发票ID 比较(eq)
   */
  private String invoiceIdEq;
  /**
   * 广告发票ID 比较(neq)
   */
  private String invoiceIdNeq;
  /**
   * 广告发票ID 比较(gt)
   */
  private String invoiceIdGt;
  /**
   * 广告发票ID 比较(gte)
   */
  private String invoiceIdGte;
  /**
   * 广告发票ID 比较(lt)
   */
  private String invoiceIdLt;
  /**
   * 广告发票ID 比较(lte)
   */
  private String invoiceIdLte;
  /**
   * 广告发票ID 比较(contains)
   */
  private String invoiceIdContains;
  /**
   * 广告发票ID 比较(notcontains)
   */
  private String invoiceIdNotcontains;
  /**
   * 广告发票ID 比较(startswith)
   */
  private String invoiceIdStartswith;
  /**
   * 广告发票ID 比较(endswith)
   */
  private String invoiceIdEndswith;
  /**
   * 广告发票ID 比较(isnull)
   */
  private Boolean invoiceIdIsnull;
  /**
   * 广告发票ID 比较(isnotnull)
   */
  private Boolean invoiceIdIsnotnull;

  /**
   * 广告发票ID(精确搜索)
   */
  private List<String> invoiceIdInList;

  /**
   * 广告活动(模糊搜索)
   */
  private String campaignName;

  /**
   * 广告活动 比较(eq)
   */
  private String campaignNameEq;
  /**
   * 广告活动 比较(neq)
   */
  private String campaignNameNeq;
  /**
   * 广告活动 比较(gt)
   */
  private String campaignNameGt;
  /**
   * 广告活动 比较(gte)
   */
  private String campaignNameGte;
  /**
   * 广告活动 比较(lt)
   */
  private String campaignNameLt;
  /**
   * 广告活动 比较(lte)
   */
  private String campaignNameLte;
  /**
   * 广告活动 比较(contains)
   */
  private String campaignNameContains;
  /**
   * 广告活动 比较(notcontains)
   */
  private String campaignNameNotcontains;
  /**
   * 广告活动 比较(startswith)
   */
  private String campaignNameStartswith;
  /**
   * 广告活动 比较(endswith)
   */
  private String campaignNameEndswith;
  /**
   * 广告活动 比较(isnull)
   */
  private Boolean campaignNameIsnull;
  /**
   * 广告活动 比较(isnotnull)
   */
  private Boolean campaignNameIsnotnull;

  /**
   * 广告活动(精确搜索)
   */
  private List<String> campaignNameInList;

  /**
   * 活动id(模糊搜索)
   */
  private String campaignId;

  /**
   * 活动id 比较(eq)
   */
  private String campaignIdEq;
  /**
   * 活动id 比较(neq)
   */
  private String campaignIdNeq;
  /**
   * 活动id 比较(gt)
   */
  private String campaignIdGt;
  /**
   * 活动id 比较(gte)
   */
  private String campaignIdGte;
  /**
   * 活动id 比较(lt)
   */
  private String campaignIdLt;
  /**
   * 活动id 比较(lte)
   */
  private String campaignIdLte;
  /**
   * 活动id 比较(contains)
   */
  private String campaignIdContains;
  /**
   * 活动id 比较(notcontains)
   */
  private String campaignIdNotcontains;
  /**
   * 活动id 比较(startswith)
   */
  private String campaignIdStartswith;
  /**
   * 活动id 比较(endswith)
   */
  private String campaignIdEndswith;
  /**
   * 活动id 比较(isnull)
   */
  private Boolean campaignIdIsnull;
  /**
   * 活动id 比较(isnotnull)
   */
  private Boolean campaignIdIsnotnull;

  /**
   * 活动id(精确搜索)
   */
  private List<String> campaignIdInList;

  /**
   * 广告类型(模糊搜索)
   */
  private String adsType;

  /**
   * 广告类型 比较(eq)
   */
  private String adsTypeEq;
  /**
   * 广告类型 比较(neq)
   */
  private String adsTypeNeq;
  /**
   * 广告类型 比较(gt)
   */
  private String adsTypeGt;
  /**
   * 广告类型 比较(gte)
   */
  private String adsTypeGte;
  /**
   * 广告类型 比较(lt)
   */
  private String adsTypeLt;
  /**
   * 广告类型 比较(lte)
   */
  private String adsTypeLte;
  /**
   * 广告类型 比较(contains)
   */
  private String adsTypeContains;
  /**
   * 广告类型 比较(notcontains)
   */
  private String adsTypeNotcontains;
  /**
   * 广告类型 比较(startswith)
   */
  private String adsTypeStartswith;
  /**
   * 广告类型 比较(endswith)
   */
  private String adsTypeEndswith;
  /**
   * 广告类型 比较(isnull)
   */
  private Boolean adsTypeIsnull;
  /**
   * 广告类型 比较(isnotnull)
   */
  private Boolean adsTypeIsnotnull;

  /**
   * 广告类型(精确搜索)
   */
  private List<String> adsTypeInList;

  /**
   * 计价方式(模糊搜索)
   */
  private String priceType;

  /**
   * 计价方式 比较(eq)
   */
  private String priceTypeEq;
  /**
   * 计价方式 比较(neq)
   */
  private String priceTypeNeq;
  /**
   * 计价方式 比较(gt)
   */
  private String priceTypeGt;
  /**
   * 计价方式 比较(gte)
   */
  private String priceTypeGte;
  /**
   * 计价方式 比较(lt)
   */
  private String priceTypeLt;
  /**
   * 计价方式 比较(lte)
   */
  private String priceTypeLte;
  /**
   * 计价方式 比较(contains)
   */
  private String priceTypeContains;
  /**
   * 计价方式 比较(notcontains)
   */
  private String priceTypeNotcontains;
  /**
   * 计价方式 比较(startswith)
   */
  private String priceTypeStartswith;
  /**
   * 计价方式 比较(endswith)
   */
  private String priceTypeEndswith;
  /**
   * 计价方式 比较(isnull)
   */
  private Boolean priceTypeIsnull;
  /**
   * 计价方式 比较(isnotnull)
   */
  private Boolean priceTypeIsnotnull;

  /**
   * 计价方式(精确搜索)
   */
  private List<String> priceTypeInList;

  /**
   * 点击量
   */
  private Integer costEventCount;

  /**
   * 最小点击量
   */
  private Integer costEventCountMin;

  /**
   * 最大点击量
   */
  private Integer costEventCountMax;

  /**
   * 点击量 比较(eq)
   */
  private Integer costEventCountEq;
  /**
   * 点击量 比较(neq)
   */
  private Integer costEventCountNeq;
  /**
   * 点击量 比较(gt)
   */
  private Integer costEventCountGt;
  /**
   * 点击量 比较(gte)
   */
  private Integer costEventCountGte;
  /**
   * 点击量 比较(lt)
   */
  private Integer costEventCountLt;
  /**
   * 点击量 比较(lte)
   */
  private Integer costEventCountLte;
  /**
   * 点击量 比较(contains)
   */
  private Integer costEventCountContains;
  /**
   * 点击量 比较(notcontains)
   */
  private Integer costEventCountNotcontains;
  /**
   * 点击量 比较(startswith)
   */
  private Integer costEventCountStartswith;
  /**
   * 点击量 比较(endswith)
   */
  private Integer costEventCountEndswith;
  /**
   * 点击量 比较(isnull)
   */
  private Boolean costEventCountIsnull;
  /**
   * 点击量 比较(isnotnull)
   */
  private Boolean costEventCountIsnotnull;

  /**
   * 费用
   */
  private java.math.BigDecimal costAmount;

  /**
   * 最小费用
   */
  private java.math.BigDecimal costAmountMin;

  /**
   * 最大费用
   */
  private java.math.BigDecimal costAmountMax;

  /**
   * 费用 比较(eq)
   */
  private java.math.BigDecimal costAmountEq;
  /**
   * 费用 比较(neq)
   */
  private java.math.BigDecimal costAmountNeq;
  /**
   * 费用 比较(gt)
   */
  private java.math.BigDecimal costAmountGt;
  /**
   * 费用 比较(gte)
   */
  private java.math.BigDecimal costAmountGte;
  /**
   * 费用 比较(lt)
   */
  private java.math.BigDecimal costAmountLt;
  /**
   * 费用 比较(lte)
   */
  private java.math.BigDecimal costAmountLte;
  /**
   * 费用 比较(contains)
   */
  private java.math.BigDecimal costAmountContains;
  /**
   * 费用 比较(notcontains)
   */
  private java.math.BigDecimal costAmountNotcontains;
  /**
   * 费用 比较(startswith)
   */
  private java.math.BigDecimal costAmountStartswith;
  /**
   * 费用 比较(endswith)
   */
  private java.math.BigDecimal costAmountEndswith;
  /**
   * 费用 比较(isnull)
   */
  private Boolean costAmountIsnull;
  /**
   * 费用 比较(isnotnull)
   */
  private Boolean costAmountIsnotnull;

  /**
   * 平均点击单价
   */
  private java.math.BigDecimal costPerUnit;

  /**
   * 最小平均点击单价
   */
  private java.math.BigDecimal costPerUnitMin;

  /**
   * 最大平均点击单价
   */
  private java.math.BigDecimal costPerUnitMax;

  /**
   * 平均点击单价 比较(eq)
   */
  private java.math.BigDecimal costPerUnitEq;
  /**
   * 平均点击单价 比较(neq)
   */
  private java.math.BigDecimal costPerUnitNeq;
  /**
   * 平均点击单价 比较(gt)
   */
  private java.math.BigDecimal costPerUnitGt;
  /**
   * 平均点击单价 比较(gte)
   */
  private java.math.BigDecimal costPerUnitGte;
  /**
   * 平均点击单价 比较(lt)
   */
  private java.math.BigDecimal costPerUnitLt;
  /**
   * 平均点击单价 比较(lte)
   */
  private java.math.BigDecimal costPerUnitLte;
  /**
   * 平均点击单价 比较(contains)
   */
  private java.math.BigDecimal costPerUnitContains;
  /**
   * 平均点击单价 比较(notcontains)
   */
  private java.math.BigDecimal costPerUnitNotcontains;
  /**
   * 平均点击单价 比较(startswith)
   */
  private java.math.BigDecimal costPerUnitStartswith;
  /**
   * 平均点击单价 比较(endswith)
   */
  private java.math.BigDecimal costPerUnitEndswith;
  /**
   * 平均点击单价 比较(isnull)
   */
  private Boolean costPerUnitIsnull;
  /**
   * 平均点击单价 比较(isnotnull)
   */
  private Boolean costPerUnitIsnotnull;

  /**
   * 币种(模糊搜索)
   */
  private String currency;

  /**
   * 币种 比较(eq)
   */
  private String currencyEq;
  /**
   * 币种 比较(neq)
   */
  private String currencyNeq;
  /**
   * 币种 比较(gt)
   */
  private String currencyGt;
  /**
   * 币种 比较(gte)
   */
  private String currencyGte;
  /**
   * 币种 比较(lt)
   */
  private String currencyLt;
  /**
   * 币种 比较(lte)
   */
  private String currencyLte;
  /**
   * 币种 比较(contains)
   */
  private String currencyContains;
  /**
   * 币种 比较(notcontains)
   */
  private String currencyNotcontains;
  /**
   * 币种 比较(startswith)
   */
  private String currencyStartswith;
  /**
   * 币种 比较(endswith)
   */
  private String currencyEndswith;
  /**
   * 币种 比较(isnull)
   */
  private Boolean currencyIsnull;
  /**
   * 币种 比较(isnotnull)
   */
  private Boolean currencyIsnotnull;

  /**
   * 币种(精确搜索)
   */
  private List<String> currencyInList;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
